// pages/order/choosepackage/choosepackage.js
import Dialog from '../../../miniprogram_npm/@vant/weapp/dialog/dialog';

const app = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    list: [],
    falg: false,
		show:1,
    writeNum:null,
    totalnum:0,
    throwId:'',
		checkedArr:[]
		// isLastPage: false,
		// current: 1,
		// size: 10,
  },
	row(e){
		this.onChange(e)
	},
  //求和
  countTotal(arr, keyName) {
    let $total = 0;
    $total = arr.reduce(function (total, currentValue, currentIndex, arr){
        return currentValue[keyName] ? (total + currentValue[keyName]) : total;
    }, 0);
    return $total;
  },
  //计数器
  changeNum(event) {
		if(this.data.writeNum !=1){
			if(event.detail*1>event.currentTarget.dataset.item.max*1){
				wx.showToast({
					title: '出库量大于库存！',
					icon: 'none',
					duration: 2000
				})
			}
		}
		const index = event.currentTarget.dataset.index;
    const num = `list[${index}].num`
    this.setData({
      [num]: event.detail*1,
    })
		// }
  },
  onChange(event) {
    const index = event.currentTarget.dataset.index;
    let list = this.data.list;
    list[index].checked = !list[index].checked
    this.setData({
      list,
    })
  },
  getData() {
		let companyId=app.globalData.userInfo.companyData.companyId
			wx.showLoading({
				title: "正在请求数据中"
			})
			wx.$apis.getPackAll(companyId).then(res => {
				wx.stopPullDownRefresh();
				const data=res.data;
				data.forEach(item=>{
					item.num=1
					item.price=wx.$getYuan(item.price)
          item.packId=item.id
				})
				this.setData({
					list: data,
				})
     
				if(this.data.farmers.length){
					let newList=[...data]
					this.data.farmers.map(item1=>{
						newList.map(item2=>{
							if(item1.packId==item2.packId){
								item2.checked=true;
								item2.num=item1.num
								return
							}
						})
					})
					this.setData({
						list: newList,
					})
				}else{
				}
			}).catch(err => {
				wx.hideLoading()
			})
  },
  submit() {
    let selectedTypeList = this.data.list.filter(item => item.checked);
    selectedTypeList.forEach(item=>{
      item.packId=item.packId
    })
		//数据为0表格不展示
		let filtersList=selectedTypeList &&selectedTypeList.filter(
			item => item.num!=0
		);
    if (selectedTypeList.length <= 0) {
    	return  wx.showToast({
        title: '请选择包装！',
        icon: 'none',
        duration: 2000
      })
    } 
    if(this.data.writeNum==1){
        this.setData({
          totalnum:this.countTotal(selectedTypeList, 'num') 
        })
				if(this.data.totalnum == 0){
					return	wx.showToast({
						title: '请输入包装数量！',
						icon: 'none',
						duration: 2000
					})
				}
        Dialog.confirm({
          context: this,
          title: '提示',
          message: `确定录入${this.data.totalnum*1}件包装吗？`,
        })
          .then(() => {
            wx.showLoading({
              title: '操作中...',
            })
            let obj=selectedTypeList.map(item=>{
              return{
                packId:item.id,
                packNumber:item.num
              }
            })
            let parmas={
              id:this.data.throwId,
              packs:obj
            }

            wx.$apis.workerChange(parmas).then(res => {
              this.onPullDownRefresh();
              if (!res.data) {
                return wx.showToast({
                  title: '操作失败，请稍后再试~',
                  icon: 'none',
                  duration: 2000
                })
              }
              wx.showToast({
                title: '计件成功',
                icon: 'success',
                duration: 2000
              })
							wx.setStorage({
								key: "activeData",
								data: 1,
								success: function () {
										wx.navigateBack(); //返回上一个页面
								}
						})
            })
          })
          .catch(() => {
          });
      }else{
        wx.setStorage({
          key: "packageType",
          data: {
            packageTypeList: filtersList,
          },
          success: function () {
            wx.navigateBack(); //返回上一个页面
          }
        })
      }


  },
		//采购单详情 getOrderInfo
		// getDetail(ids) {
		// 	wx.$apis.getOrderInfo(ids).then(res => {
		// 		wx.hideLoading();
		// 		if (res.data) {
		// 			this.setData({
		// 				list:res.data.packs,
		// 				show:2//可以修改数量
		// 			})
		// 		}
		// 		this.data.list.map(item=>{
		// 			item.num=0;
		// 			item.checked=false;
		// 			item.price=wx.$getYuan(item.price);
		// 		})
		// 		let newArr1=[...this.data.list];
		// 		console.log('选中的',this.data.checkedArr)
		// 		//选中的包装
		// 		this.data.checkedArr.map(item1=>{
		// 			newArr1.map(item2=>{
		// 				if(item1.packId==item2.id||item1.id==item2.id){
		// 					item2.checked=true;
		// 					item2.num=item1.num;
		// 					// item2.price=wx.$getYuan(item1.price);
		// 					item2.price=item1.price;
		// 					return
		// 				}
		// 			})
		// 		})
		// 		this.setData({
		// 			list:newArr1
		// 		})
		// 		console.log('可以选择的',this.data.list)
		// 	}).catch(err => {
		// 		wx.hideLoading()
		// 	})
		// },
  onLoad: function (options) {
    const type = options.type
    const is = options.is
    const id = options.id
		const pack=options.pack
		const ids=options.ids //采购单编号查询包装


		if(pack==1){//小工记件和备货单发货及修改
			if(is==1){  //小工计件数
				this.setData({
					writeNum:1,
					throwId:id
				})
				// this.getDetail(ids)
				const eventChannel = this.getOpenerEventChannel()
				eventChannel.on('packListData', (data) => { 
					if(data.farmers){
						data.farmers.forEach(item=>{
							// item.checked=true;		
							// item.price=wx.$getYuan(item.price);
						})
						this.setData({
							list: data.farmers,
							// checkedArr:data.farmers,
							show:2
						})
						console.log(this.data.list,'listlist')
					}
			})
			}else{//和备货单发货及修改
				// this.getDetail(ids)
				// console.log(this.data.list,'this.data.list')
				if(type==2){
					const eventChannel = this.getOpenerEventChannel()
					eventChannel.on('packListData', (data) => { 
						if(data.farmers){
							data.farmers.forEach(item=>{
								item.num=item.inventory
								item.max=item.inventory
								// item.checked=true;		
								// item.price=wx.$getYuan(item.price);
							})
							this.setData({
								list: data.farmers,
								// checkedArr:data.farmers,
								show:2
							})
						}
				})
				}else{
					const eventChannel = this.getOpenerEventChannel()
					eventChannel.on('packListData', (data) => { 
						if(data.farmers){
							console.log(data.farmers,'data.farmersdata.farmers')
							data.farmers.forEach(item=>{
								// item.num=item.num
								// item.inventory=item.inventory
								item.max=(item.inventory+item.num)*1
								// item.checked=true;		
								// item.price=wx.$getYuan(item.price);
							})
							this.setData({
								list: data.farmers,
								// checkedArr:data.farmers,
								show:2
							})
						}
				})
				}
			}
		}else{
			// if()
			const eventChannel = this.getOpenerEventChannel() //展示选中的数据（渲染全部）-修改订单计划
			eventChannel.on('packListData', (data) => { 
				if(data.packList){
					data.packList.forEach(item=>{
						item.checked=true;
						item.packId=item.id;
						// item.price=wx.$getYuan(item.price);
					})
					this.setData({
						farmers:data.packList
					})
					this.getData();
				}else{
					this.getData();
	
				}
		})
		}

  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
		this.setData({
			current: 1,
			list: [],
			isLastPage: false
		})
		this.getData()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})